iT邦幫忙

2022 iThome 鐵人賽

DAY 22
1
自我挑戰組

三十天,PG與我系列 第 22

Postgres監控插件介紹

  • 分享至 

  • xImage
  •  

Postgres插件使用方法:

  • 有些插件(像是pg_stat_statements)在使用前必須先加到postgresql.conf的shared_preload_libraries裡面,這樣插件才能跟隨伺服器啟動(或是session_preload_libraries跟隨每個資料庫的session啟動)
  • 在使用任何的插件以前,先連線到資料庫,然後以資料庫為單位對他啟用插件
CREATE EXTENSION pg_stat_statements;

pg_stat_statements

用途:整理系統執行過的每一條SQL指令,可以透過SQL指令查詢插件紀錄的資訊,了解各種query的執行狀況

  • 可以查詢像是query執行的平均時間,被呼叫的次數,以及讀取block的快取命中情形跟I/O時間等等,可以查看官方文件以取得進一步的欄位說明
    例子:查詢佔用時間最長的前十條query
SELECT round((100 * total_time / sum(total_time)                       
           OVER ())::numeric, 2) percent,                        
           round(total_time::numeric, 2) AS total,                  
           calls,                                                   
           round(mean_time::numeric, 2) AS mean,                    
           substring(query, 1, 200)                                  
 FROM  pg_stat_statements                                               
           ORDER BY total_time DESC                                               
           LIMIT 10;                                                              

pg_stat_user_indexs

用途:可以查詢資料庫中每一支index的使用情形,像是被使用的次數,掃描的index筆數以及透過index scan回傳出來的行數量等等

pg_stat_activities

用途:可以查看Postgres主機現在正在執行的每個backend process以及其資訊
這些資訊包括連線的使用者/IP/
當前交易開始的時間/
backend的狀態(正在執行工作/等待IO或是其他程序的鎖)
以及backend當前正在執行或是最後一個被執行的query內容等等...

pg_stat_database

用途:可以查看Postgres主機上面每個資料庫被使用的情形,例如上面已經被commit/中斷的交易數量,被讀取/插入/更新/刪除的tuple數量等等

pg_stat_user_tables

用途:可以查看每個table的使用情形
其中包含sequential scan/index scan的次數以及這兩種操作讀出的行數
被插入/更新/刪除/HOT update的tuple數量
可見與不可見的資料行數,以及上次進行VACUUM的時間等
例子:找出有被做過大量sequential scan的table

SELECT schemaname, relname, seq_scan, seq_tup_read,
 seq_tup_read / seq_scan AS avg, idx_scan
FROM pg_stat_user_tables
WHERE seq_scan > 0
ORDER BY seq_tup_read DESC LIMIT 25;

上一篇
PostgreSQL Log記錄功能
下一篇
Postgres圖形化用戶端-PGAdmin
系列文
三十天,PG與我30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言